5
תגובות
שמתי את המשתנה של המחלקה של ה db במשתנה גלובאלי כלומר ככה:
זה בטוח?
$db = new db;
$GLOBALS['db'] = $db;
$GLOBALS['db'] = $db;
זה בטוח?
5 תשובות
ענה
iiddaannyy
ב
07 לאפריל 2013
#
לא כל כך.
אתה תמיד תוכל בטעות לערוך את המשתנה הזה. וזו גם צורת כתיבה לא נכונה.
אם שתיצור מתודה סטטית למחלקה db שתחזיר את ה-instance, או שתיצור פונקציה כזו:
function db() {
static $db;
if (!$db instanceof db) {
$db = new db;
}
return $db;
}
static $db;
if (!$db instanceof db) {
$db = new db;
}
return $db;
}
הקשר הוא שכל מה שתצטרך לעשות זה לכתוב פונקציה (או מתודה של מחלקת בסיס הנתונים שלך) שתבדוק אם כבר קיים מופע של המחלקה שרצית כבר (זה סטטי, אז יהיה אפשר לגשת לזה בקריאה אחרת לפונקציה), ואם כן - שתחזיר אותו. (אם לא - שתיצור מופע חדש ושתחזיר אותו.)
iiddaannyy, אני דווקא הייתי ממליץ על זה:
$db = db();
$db->query('...');
$db->query('...');
לקרוא כל פעם לפונקציה לא ממש נשמע לי. לקרוא רק כשצריך זה סבבה.
נ.ב. אופס, השאלה היא אם לאחסן את זה במשתנה גלובלי, שזה מה שעשיתי. אז מבחינתי התשובה היא כן, אבל רק כשאתה צריך. כלומר, לא לפתוח חיבור למסד בהתחלה, אלא רק בעת הצורך.